package com.zx.crowdfunding.service.api;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import com.github.pagehelper.PageInfo;
import com.zx.crowdfunding.entity.Menu;

/**
 * 会话 - Service接口
 * @author 郑雪
 * @date 2021-12-18
 */
public interface SessionService {
	
	/**
	 * 查询全部会话集合
	 * @return 会话Map对象的List集合
	 */
	List<Map<String, Object>> getAll();

	/**
	 * 查询分页信息
	 * @param keyword 查询的关键字
	 * @param pageNum 分页页码
	 * @param pageSize 分页大小
	 * @return PageInfo对象，封装了详细的分页信息
	 */
	PageInfo<Map<String, Object>> getPageInfo(String keyword, Integer pageNum, Integer pageSize);

	/**
	 * 添加菜单时更新Session中的管理员菜单集合
	 * @param menu 新增加的菜单对象
	 * @throws SQLException 
	 */
	void editSessionForAddMenu(Menu menu);
	
	/**
	 * 修改菜单时更新Session中的管理员菜单集合
	 * @param menu 修改后的菜单对象
	 */
	void editSessionForEditMenu(Menu menu);
	
	/**
	 * 删除菜单时更新Session中的管理员菜单集合
	 * @param menuIdList 删除的菜单id的List集合
	 */
	void editSessionForDeleteMenu(List<Integer> menuIdList);
	
	/**
	 * 更新Session中的管理员菜单集合
	 */
	void editSessionForMenuSet();

	/**
	 * 更新Session中的管理员权限
	 */
	void editSessionForAuth();

}
